Apparatusses and methods to supress unintended motion of a pointing device

ABSTRACT

Methods for processing information transmitted from a pointing device with at least one button towards a graphical interface operating according to received display motion coordinates and notifications are provided. A method includes intercepting sensed motion coordinates and the button status transmitted from the pointing device. The method further includes determining the display motion coordinates and the notifications based on an evolution of the sensed coordinates and an evolution of the button status, to remove an unintentional motion included in the sensed motion coordinates. The method then includes outputting the display motion coordinates and the notifications towards the graphical interface.

TECHNICAL FIELD

The present inventions are related to techniques, devices, systems andsoftware for unintended motion suppression from motion output ofpointing devices.

BACKGROUND

Technologies associated with the communication of information haveevolved rapidly over the last several decades. Television, cellulartelephony, the Internet and optical communication techniques (to namejust a few things) combine to inundate consumers with availableinformation and entertainment options. The technological ability toprovide interface devices easy to manipulate and responding prompt andaccurate not only to user's actual manipulation but also to user'sactual intent.

The widest spread interface device used to convey a user's desires to ascreen is the mouse. A mouse's motion on a 2-D surface yields a cursormotion on a screen.

Recently, 3-D operating handheld devices provide more and morecompetitive alternative to the mouse. An exemplary 3D pointing device100 (that has an appearance similar to the conventional mouse) isdepicted in FIG. 1. Therein, a user operates the 3D pointing device 100,for example, altering a combination of x-axis attitude (roll), y-axiselevation (pitch) and/or z-axis heading (yaw) position of the 3Dpointing device 100. The effect is a change in position of the cursor110 on a screen 108. In some exemplary embodiments, the cursor is moveddue to linear movement of the 3D pointing device 100 along the x, y, andz axes to generate cursor movement or other user interface commands. The3D pointing device 100 includes two buttons 102 and 104, as well as ascroll wheel 106, although this configuration is exemplary no intendedto be limiting. The motion of the 3D pointing device 100 sensed andtranslated into output usable to interact with the information displayedon display 108. For example, rotation of the 3D pointing device 100about the y-axis can be sensed by the 3D pointing device 100 andtranslated into an output usable by the system to move cursor 110 alongthe y₂ axis of the display 108. Likewise, rotation of the 3D pointingdevice 108 about the z-axis can be sensed by the 3D pointing device 100and translated into an output usable by the system to move cursor 110along the x₂ axis of the display 108. It will be appreciated that theoutput of 3D pointing device 100 can be used to interact with thedisplay 108 in a number of ways other than (or in addition to) cursormovement.

Another example of a 3-D pointing device is illustrated in FIG. 2. The3D pointing device 200 in FIG. 2 includes a ring-shaped housing 201, twobuttons 202 and 204 as well as a scroll wheel 206 and a grip 207. Thetwo buttons 202 and 204 and the scroll wheel 206 are located in a“control area” 208, which is disposed on an outer portion of thering-shaped housing 201. More details regarding this exemplaryembodiment can be found in U.S. patent application Ser. No. 11/480,662,entitled “3D Pointing Devices”, filed on Jul. 3, 2006, the disclosure ofwhich is incorporated here by reference.

The pointing devices typically include at least one button that, whenpressed, trigger actions related to items displayed on the screen at oraround the cursor's position. Such devices have numerous applicationsincluding, for example, usage in the so-called “10 foot” interfacebetween a sofa and a television in the typical living room as shown inFIG. 3. Therein, as the pointing device 300 moves between differentpositions, that movement is detected by one or more sensors attached tothe pointing device 300, and transmitted to the television 320 (orassociated system component, e.g., a set-top box (not shown)). Themovement of the 3D pointing device 300 can, for example, be translatedinto movement of a cursor 340 displayed on the television 320 and whichis used to interact with a user interface. Details of an exemplary userinterface with which the user can interact via a pointing device can befound, for example, in the U.S. patent application Ser. No. 11/437,215,entitled “Global Navigation Objects in User Interfaces”, filed on May19, 2006, the disclosure of which is incorporated here by reference.

In order to enable various interface operations, the pointing devicesinclude at least one button. This button may be used for selecting adisplayed item or initiating other operations (e.g., causing display ofa submenu associated with the item) by pressing and/or releasing thebutton. Plural button-release sequences within a short time interval mayinitiate different operations. For example, a single click-release ofthe button may cause displaying information about an applicationassociated with the item, while a double click-release may cause theapplication to start running. The pointing devices are also frequentlyused to change position on the screen of the item by keeping the buttonpressed while changing the position of the cursor.

One problem associated with the dual aspect operation of the pointingdevice, i.e., change of coordinates and button operation, is thatunintended motion (such as, tremor or other unintentional motionsoccurring when a user executes a button pressing action) may result inun-intended consequences, or inability to achieve the intendedoperation. The unintentional motions are more pronounced when 3-Dpointing devices are used than for the 2-D pointing devices (e.g., theconventional mouse) due to the absence of the support surface.

Accordingly, it would be desirable to provide devices, systems andmethods that would stabilize the cursor output when the button ispressed or to allow for a plural click-release at the same location, andachieve a better distinction between a select action and a drag actionof the user.

SUMMARY

It is an object to overcome some of the deficiencies discussed in theprevious section and to provide a user of a pointing device with anenhanced experience when being able to perform both drag andmultiple-click (press-release sequence) selection.

According to one exemplary embodiment, an apparatus located between (A)a pointing device having a button and outputting sensed motioncoordinates and a button status, and (B) a graphical interface operatingaccording to received display motion coordinates and notificationsrelated to the button status is provided. The apparatus includes aninput/output (I/O) interface connected to the pointing device and to thegraphical interface, and configured to receive the sensed motioncoordinates and the button status from the pointing device, and tooutput the display motion coordinates and the notifications towards thegraphical interface. The apparatus also includes a processing unitconnected to the I/O interface and configured to determine the displaymotion coordinates and the notifications based on an evolution of thesensed motion coordinates and an evolution of the button status, such asto remove an unintentional motion included in the sensed motioncoordinates from an evolution of the display motion coordinates.

According to another exemplary embodiment, a method for processinginformation transmitted from a pointing device with at least one buttontowards a graphical interface operating according to received displaymotion coordinates and notifications is provided. The method includesintercepting sensed motion coordinates and the button status transmittedfrom the pointing device. The method further includes determining thedisplay motion coordinates and the notifications based on an evolutionof the sensed coordinates and an evolution of the button status, toremove an unintentional motion included in the sensed motioncoordinates. The method then includes outputting the display motioncoordinates and the notifications towards the graphical interface.

According to another exemplary embodiment, a computer readable storingmedium storing executable codes which when executed by a computerlocated on a data transmission path between a pointing device with atleast one button and a graphical interface operating according toreceived display motion coordinates and a button status make thecomputer execute a method is provided. The method includes interceptingsensed motion coordinates and the button status transmitted from thepointing device. The method further includes determining the displaymotion coordinates and the notifications based on an evolution of thesensed coordinates and an evolution of the button status, to remove anunintentional motion included in the sensed motion coordinates. Themethod then includes outputting the display motion coordinates and thenotifications towards the graphical interface.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings, which are incorporated in and constitute apart of the specification, illustrate one or more embodiments and,together with the description, explain these embodiments. In thedrawings:

FIG. 1 is an illustration of operation of a pointing device;

FIG. 2 is an illustration of another pointing device;

FIG. 3 illustrates usage of a pointing device;

FIG. 4 is a schematic diagram of a system including an apparatusaccording to an exemplary embodiment;

FIG. 5 is a schematic diagram illustrating structure of an apparatusaccording to an embodiment;

FIG. 6 is a state diagram illustrating a manner of operation of anapparatus according to an embodiment; and

FIG. 7 is a flow diagram of a method for motion suppression according toan exemplary embodiment.

DETAILED DESCRIPTION

The following description of the exemplary embodiments refers to theaccompanying drawings. The same reference numbers in different drawingsidentify the same or similar elements. The following detaileddescription does not limit the invention. Instead, the scope of theinvention is defined by the appended claims. The following embodimentsare discussed, for simplicity, with regard to the terminology andstructure of an interface between a pointing device with one button to ascreen on which are displayed a plurality of items and a cursor.However, the embodiments to be discussed next are not limited to thesesystems, but may be applied to other existing systems that havemotion-based operation concurrent with other types of action-basedoperation.

Reference throughout the specification to “one embodiment” or “anembodiment” means that a particular feature, structure, orcharacteristic described in connection with an embodiment is included inat least one embodiment of the present invention. Thus, the appearanceof the phrases “in one embodiment” or “in an embodiment” in variousplaces throughout the specification is not necessarily all referring tothe same embodiment. Further, the particular features, structures orcharacteristics may be combined in any suitable manner in one or moreembodiments.

In order to perform suppression of an unintentional motion, asillustrated in FIG. 4, in a system 400, an apparatus 410 is locatedalong a data transmission path, between a pointing device 420 and agraphical interface 430. Here graphical interface means hardware andsoftware that operate to display, on a screen, plural items (e.g.,icons) and a cursor, whose motion corresponds to the pointing devicemotion. The pointing device 420 has at least one button 422 and isconfigured to output sensed motion coordinates and a button status. Thegraphical interface 430 operates according to received display motioncoordinates and the button status.

In fact the apparatus 410 may be physically collocated with either thepointing device 420 or the graphical interface 430. The pointing device420 may include plural buttons whose status may be changed due to theuser's actions. The pointing device 420 may transmit button statuses atpredetermined time intervals or may signal when changes of respectivestatuses occur. The pointing device 420 may output the sensed motioncoordinates at predetermined time intervals.

FIG. 5 is a schematic diagram illustrating the structure of an apparatus500 according to an embodiment. The apparatus 500 includes aninput/output (I/O) interface 510 connected to the pointing device (e.g.,420) and to the graphical interface (e.g., 430). The I/O interface 510is configured (1) to receive the sensed motion coordinates and thebutton status from the pointing device and (2) to output the displaymotion coordinates and the button status towards the graphicalinterface.

The apparatus further includes a processing unit 520 including hardwarecomponents such as a processor. The processing unit 520 is connected tothe I/O interface 510 and it is configured to determine the displaymotion coordinates based on an evolution of the sensed motioncoordinates, depending on an evolution of the button status, such as toremove an unintentional motion from an evolution of the display motioncoordinates. Here, the evolution of the sensed motion coordinates meansa time sequence of received values thereof. Similarly, the evolution ofthe button status means a time sequence of the received values of thebutton status.

The state diagram 600 in FIG. 6 illustrates a manner of operation of anapparatus (e.g., 410, and/or 500) according to an exemplary embodiment.The state diagram 600 describes six states and transitionsthere-between. State “Wait For Press” 610 corresponds to a situation inwhich the button has not been pressed.

State “Drag Suppress” 620 corresponds to a situation in which the buttonhas been pressed for a first time (i.e., not associated with anotherrecent press-release sequence) and not yet released or dragged asignificant distance (i.e., a difference between the previous sensedmotion coordinates and the received sensed motion coordinates hasexceeded a first predetermined distance). While the apparatus is in thisstate, the display motion coordinates maintain a constant value (i.e.,the values of the display motion coordinates when the transition in thestate has occurred) for a first predetermined time interval or until achange in the sensed motion coordinates exceeds the first predetermineddistance. For example, the first predetermined time interval may be 0.4s, and the first predetermined distance may be 35 pixels.

State “Drag” 630 corresponds to a situation when the button is pressedand not released, and a change in the received sensed coordinates hasindicated a clear intent to perform a drag action (i.e., the differencebetween the previous sensed motion coordinates and the received sensedmotion coordinates has exceeded the first predetermined distance or thefirst time interval has expired).

State “Wait For PressN” 640 corresponds to a situation when the buttonhas been released and may be pressed again. While the apparatus is inthis state, the display motion coordinates maintain a constant value fora second predetermined time interval or until a change in the sensedmotion coordinates exceeds a second predetermined distance. For example,the second predetermined time interval may be 0.152 s and the secondpredetermined distance may be 8 pixels.

State “Suppress” 650 corresponds to a situation when the button hasagain been pressed a short time after a press-release sequence (i.e.,the button being pressed is associated with the previous press-releasesequence). While the apparatus is in this state, the display motioncoordinates maintain a constant value for a third predetermined timeinterval or until a change in the sensed motion coordinates exceeds athird predetermined distance. For example the third time interval may be0.32 s and the third predetermined distance may be 45 pixels.

State “Wait For Release” 660 corresponds to a situation when the buttonis still pressed but cursor motion is no longer suppressed becauseeither enough time has elapsed or the device was moved too far to remainin state “Suppress” 650.

Thus, suppression of cursor motion occurs in states 620, 640 and 650.When a new sample of the device motion is available, an “evSample” eventis issued. During the predetermined first, second, and third timeintervals, the time elapsed since the transition in the respective stateis measured and whether the distance between the previous sensed motioncoordinates and the sensed motion coordinates has exceeded respectivethreshold is tested, operations indicated by the functions “f1”, “f2”and “f3”. The pressing or releasing of the button labeled as “evPress”and “evRelease” are events that may also trigger a transition from astate into another state.

Additionally the manner of transition from a state to another state maydepend on values of some Boolean variable (flags), for example, a dragenable flag and a select enable flag. If the flags have values ON (thedefault values) a drag action and/or a selection via pluralpress-release sequences are respectively possible. If the flags havevalues OFF, a drag action and/or a selection via plural press-releasesequences are respectively not allowed. The apparatus may receivecontrol signals for changing the values of the flags.

Thus, a transition from the state 610 to the state 620 occurs if thedrag enable flag and the select enable flag are ON and the button ispressed (i.e., evPress event occurs). In case of such transition annPending notification is sent towards the graphical interface, andcursor motion is suppressed.

A transition from the state 620 to the state 630 occurs if according toresults of the tests (i.e., evSample) the first time intervals haselapsed or a change in the sensed motion coordinates exceeds the firstpredetermined distance. In case of such transition an nDragStartnotification is sent towards the graphical interface, and cursor motionis no longer suppressed.

A transition from the state 630 to the state 610 occurs when the buttonis released (i.e., an evRelease event) and a “nDragStop” notification issent towards the graphical interface.

A transition from the state 610 to the state 630 occurs if the dragenable flag is ON and the select enable flag is OFF when the button ispressed (i.e., and evPress event). A “nDragStart” notification is senttowards the graphical interface. This allows for instantaneous detectionof drag for GUI elements that can only be dragged, and can't beselected.

A transition from the state 620 to the state 640 occurs when the buttonis released (i.e., and evRelease event) and a “nSelect” notification issent towards the graphical interface.

A transition from state 640 to the state 650 occurs when the button ispressed (i.e., an evPress event) and a “nSelect” notification is senttowards the graphical interface. A transition from state 650 to thestate 640 occurs when the button is released (i.e., an evRelease event).

A transition from state 640 to state 610 occurs if results of the tests(i.e., evSample event) indicate that the second predetermined timeinterval elapsed or the sensed coordinates have changed more than thepredetermined second distance.

A transition from state 650 to state 660 occurs if the results of thetests (i.e., evSample event) indicate that the third predetermined timeinterval elapsed or the sensed coordinates have changed more than thepredetermined third distance.

A transition from state 610 to state 650 occurs when the button ispressed (i.e., an evPress event), the drag enable flag is OFF and theselect enable flag is ON. A “nSelect” notification is sent towards thegraphical interface.

A transition from state 660 to state 610 occurs when the button isreleased (i.e., an evRelease event).

A transition from state 610 to state 660 occurs if both the drag enableflag and the select enable flag are OFF and the button is pressed (i.e.,an evPress event). A “nSelect” notification is sent towards thegraphical interface.

In other words, the processing unit (e.g., 520) may be configured tooutput, as the display motion coordinates, previous sensed motioncoordinates received prior to the button status indicating that thebutton has been pressed (1) during a first predetermined time intervalafter the button status indicates that the button has been pressed, butbefore indicating that the button has been released, and (2) while adifference between the previous sensed motion coordinates and the sensedcoordinates received during the first predetermined time interval doesnot exceed a first predetermined distance. The processing unit may befurther configured, to output, as the display motion coordinates, theprevious sensed motion coordinates (1) if the status button has beenreleased during the first time interval, (2) during a secondpredetermined time interval after the evolution of the button statusindicates that the button was pressed and released, but beforeindicating that the button has been pressed again, and (3) while adifference between the previous sensed motion coordinates and the sensedmotion coordinates received during the second predetermined timeinterval does not exceed a second predetermined distance.

The processing unit may further be configured to output, as the displaymotion coordinates, the previous sensed motion coordinates (1) if thebutton status indicates that the button has been pressed again duringthe second predetermined time interval after being released, (2) duringa third predetermined time interval, after the evolution of the buttonstatus indicates that the button was pressed again, but has not beenreleased again, and (3) while a difference between the previous sensedcoordinates and the sensed coordinates received during the thirdpredetermined time interval does not exceed a third predetermineddistance.

In some embodiments, the processing unit may be configured to determinethe display motion coordinates also depending on values of a drag enableflag and a select enable flag. The I/O interface may be configured toreceive control signals for changing default values of the drag enableflag and of the select enable flag.

The default values of the drag enable flag and of the select enable flagmay be “ON” values. The processing unit may be configured to output, asthe display motion coordinates, previous sensed motion coordinatesreceived prior to the button status indicating that the button has beenpressed, until the button status indicates that the button has beenreleased, if the drag enable flag has an “OFF” value. The processingunit may also be configured to output, as the display motioncoordinates, the sensed motion coordinates if the select enable flag hasan “OFF” value.

A flow diagram of a method 700 for processing information transmittedfrom a pointing device with a button towards a graphical interfaceoperating according to received display motion coordinates andnotifications is illustrated in FIG. 7. The method 700 includesintercepting sensed motion coordinates and the button status transmittedfrom the pointing device, at 710.

The method 700 further includes determining the display motioncoordinates and notifications based on an evolution of the sensedcoordinates and an evolution of the button status, to remove anunintentional motion included in the sensed motion coordinates, at S720.The method 700, also includes outputting the display motion coordinatesand the notifications towards the graphical interface, at S730.

In one embodiment, the method determines that the display motioncoordinates are previous sensed motion coordinates transmitted prior tothe button status indicating that the button has been pressed (1) duringa first predetermined time interval after the button status indicatesthat the button has been pressed, but before indicating that the buttonhas been released, and (2) while a difference between the previoussensed motion coordinates and the sensed coordinates received during thefirst predetermined time interval does not exceed a first predetermineddistance.

In one embodiment, the method determines that the display motioncoordinates are the previous sensed motion coordinates acquired prior tothe button status indicating that the button has been pressed (1) if thestatus button has been released during the first time interval, (2)during a second predetermined time interval after the evolution of thebutton status indicates that the button was pressed and released, butbefore indicating that the button has been pressed again, and (3) whilea difference between the previous sensed motion coordinates and thesensed motion coordinates received during the second predetermined timeinterval does not exceed a second predetermined distance.

In one embodiment, the method determines that the display motioncoordinates are the previous sensed motion coordinates (1) if the buttonstatus indicates that the button has been pressed again during thesecond predetermined time interval after being released, (2) during athird predetermined time interval, after the evolution of the buttonstatus indicates that the button was pressed again, but has not beenreleased again, and (3) while a difference between the previous sensedmotion coordinates and the sensed motion coordinates received during thethird predetermined time interval does not exceed a third predetermineddistance.

In one embodiment the method determines the notification by (1)selecting a first notification (nPending) when the received buttonstatus indicates that the button is pressed, but before determiningwhether a select action or a drag action follows, (2) selecting a secondnotification (nDragStart) when the received button status indicates thatthe button is pressed, and the display motion coordinates are differentfrom the sensed motion coordinates, (3) selecting a third notification(nDragStop), when the evolution of the received button status indicatesthat the button has been released after a prior notification that is thesecond notification, and (4) selecting a fourth notification (nSelect),when the button is released and or pressed a second time after a priornotification is not the second notification.

In one embodiment the method determines the display motion coordinatesalso depending on values of a drag enable flag and a select enable flagthat have “ON” as default values. The method of claim may furtherinclude receiving control signals to change the default values of thedrag enable flag and of the select enable flag, and changing the defaultvalues of the drag enable flag and of the select enable flag accordingto the received control signals.

In one embodiment, if drag enable flag has an “OFF” value, the methoddetermines the display motion coordinates to be previous sensed motioncoordinates acquired prior to the button status indicating that thebutton has been pressed, until the button status indicates that thebutton has been released. If the select enable flag has an “OFF” value,the method determines the display motion coordinates to be the sensedmotion coordinates.

According to one embodiment, a computer readable storing medium (such asthe memory 530 in FIG. 5) stores executable codes which when executed bya computer located on a data transmission path between a pointing devicewith at least one button and a graphical interface operating accordingto received display motion coordinates and a button status make thecomputer execute the above described methods.

The disclosed exemplary embodiments provide a parallel computing system,a method and a computer program product for suppressing unintendedmotion of a pointing device having a button and linked to a graphicalinterface such as to be able to perform a drag action and a selectionaction. It should be understood that this description is not intended tolimit the invention. On the contrary, the exemplary embodiments areintended to cover alternatives, modifications and equivalents, which areincluded in the spirit and scope of the invention as defined by theappended claims. Further, in the detailed description of the exemplaryembodiments, numerous specific details are set forth in order to providea comprehensive understanding of the claimed invention. However, oneskilled in the art would understand that various embodiments may bepracticed without such specific details.

As also will be appreciated by one skilled in the art, the exemplaryembodiments may be embodied in a wireless communication device, atelecommunication network, as a method or in a computer program product.Accordingly, the exemplary embodiments may take the form of an entirelyhardware embodiment or an embodiment combining hardware and softwareaspects. Further, the exemplary embodiments may take the form of acomputer program product stored on a computer-readable storage mediumhaving computer-readable instructions embodied in the medium. Anysuitable computer readable medium may be utilized including hard disks,CD-ROMs, digital versatile disc (DVD), optical storage devices, ormagnetic storage devices such a floppy disk or magnetic tape. Othernon-limiting examples of computer readable media include flash-typememories or other known memories.

Although the features and elements of the present exemplary embodimentsare described in the embodiments in particular combinations, eachfeature or element can be used alone without the other features andelements of the embodiments or in various combinations with or withoutother features and elements disclosed herein. The methods or flow chartsprovided in the present application may be implemented in a computerprogram, software, or firmware tangibly embodied in a computer-readablestorage medium for execution by a specifically programmed computer orprocessor.

What is claimed is:
 1. An apparatus located between (A) a pointingdevice having a button and outputting sensed motion coordinates and abutton status, and (B) a graphical interface operating according toreceived display motion coordinates and notifications related to thebutton status, the apparatus comprising: an input/output (I/O) interfaceconnected to the pointing device and to the graphical interface, andconfigured to receive the sensed motion coordinates and the buttonstatus from the pointing device, and to output the display motioncoordinates and the notifications towards the graphical interface; and aprocessing unit connected to the I/O interface and configured todetermine the display motion coordinates and the notifications based onan evolution of the sensed motion coordinates and an evolution of thebutton status, such as to remove an unintentional motion included in thesensed motion coordinates from an evolution of the display motioncoordinates, wherein the processing unit is further configured tooutput, as the display motion coordinates, previous sensed motioncoordinates received prior to the button status indicating that thebutton has been pressed (1) during a first predetermined time intervalafter the button status indicates that the button has been pressed, butbefore indicating that the button has been released, and (2) while adifference between the previous sensed motion coordinates and the sensedcoordinates received during the first predetermined time interval doesnot exceed a first predetermined distance, the processing unit isfurther configured, to output, as the display motion coordinates, theprevious sensed motion coordinates (3) if the status button has beenreleased, (4) during a second predetermined time interval after theevolution of the button status indicates that the button was pressed andreleased, but before indicating that the button has been pressed again,and (5) while a difference between the previous sensed motioncoordinates and the sensed motion coordinates received during the secondpredetermined time interval does not exceed a second predetermineddistance, and the processing unit is further configured to output, asthe display motion coordinates, the previous sensed motion coordinates(6) if the button status indicates that the button has been pressedagain during the second predetermined time interval after being pressedand released, (7) during a third predetermined time interval, after theevolution of the button status indicates that the button was pressedagain, but has not been released again, and (8) while a differencebetween the previous sensed coordinates and the sensed coordinatesreceived during the third predetermined time interval does not exceed athird predetermined distance.
 2. The apparatus of claim 1, wherein theprocessing unit is further configured to determine (1) a firstnotification (nPending) when the received button status indicates thatthe button is pressed, but before determining whether a select action ora drag action follows, (2) a second notification (nDragStart) when thereceived button status indicates that the button is pressed, and thedisplay motion coordinates are the sensed motion coordinates, (3) athird notification (nDragStop), when the evolution of the receivedbutton status indicates that the button has been released and after aprior notification that is the second notification, and (4) a fourthnotification (nSelect), when the button is released and pressed a secondtime after a prior notification is not the second notification, whereinthe drag action takes place between the second notification and thethird notification and a select action takes place after the fourthnotification.
 3. An apparatus located between (A) a pointing devicehaving a button and outputting sensed motion coordinates and a buttonstatus, and (B) a graphical interface operating according to receiveddisplay motion coordinates and notifications related to the buttonstatus, the apparatus comprising: an input/output (I/O) interfaceconnected to the pointing device and to the graphical interface, andconfigured to receive the sensed motion coordinates and the buttonstatus from the pointing device, and to output the display motioncoordinates and the notifications towards the graphical interface; and aprocessing unit connected to the I/O interface and configured todetermine the display motion coordinates and the notifications based onan evolution of the sensed motion coordinates and an evolution of thebutton status, such as to remove an unintentional motion included in thesensed motion coordinates from an evolution of the display motioncoordinates, wherein (1) the processing unit is further configured todetermine the display motion coordinates also depending on values of adrag enable flag and a select enable flag, and (2) the I/O interface isfurther configured to receive control signals for changing defaultvalues of the drag enable flag and of the select enable flag.
 4. Theapparatus of claim 3, wherein the default values of the drag enable flagand of the select enable flag have “ON” values.
 5. The apparatus ofclaim 3, wherein the processing unit is further configured to output, asthe display motion coordinates, previous sensed motion coordinatesreceived prior to the button status indicating that the button has beenpressed, until the button status indicates that the button has beenreleased, if the drag enable flag has an “OFF” value.
 6. The apparatusof claim 3, wherein the processing unit is further configured to output,as the display motion coordinates, the sensed motion coordinates if theselect enable flag has an “OFF” value.
 7. A method for processinginformation transmitted from a pointing device with at least one buttontowards a graphical interface operating according to received displaymotion coordinates and notifications, the method comprising:intercepting sensed motion coordinates and the button status transmittedfrom the pointing device; determining the display motion coordinates andthe notifications based on an evolution of the sensed coordinates and anevolution of the button status, to remove an unintentional motionincluded in the sensed motion coordinates; and outputting the displaymotion coordinates and the notifications towards the graphicalinterface, wherein the determining of the display motion coordinates isperformed also depending on values of a drag enable flag and a selectenable flag that have “ON” as default values.
 8. The method of claim 7,further comprising: receiving control signals to change the defaultvalues of the drag enable flag and of the select enable flag; andchanging the default values of the drag enable flag and of the selectenable flag.
 9. The method of claim 8, if drag enable flag has an “OFF”value, the display motion coordinates are previous sensed motioncoordinates acquired prior to the button status indicating that thebutton has been pressed, until the button status indicates that thebutton has been released.
 10. The method of claim 8, wherein if theselect enable flag has an “OFF” value, the display motion coordinatesare the sensed motion coordinates.
 11. A non-transitory computerreadable storing medium storing executable codes which when executed bya computer located on a data transmission path between a pointing devicewith at least one button and a graphical interface operating accordingto received display motion coordinates and a button status make thecomputer execute a method comprising: intercepting sensed motioncoordinates and the button status transmitted from the pointing device;and determining the display motion coordinates based on an evolution ofthe sensed coordinates, depending on an evolution of the button status,to remove an unintentional motion included in the sensed motioncoordinates; and outputting the display motion coordinates and thebutton status towards the graphical interface, wherein the displaymotion coordinates are previous sensed motion coordinates transmittedprior to the button status indicating that the button has been pressed(1) during a first predetermined time interval after the button statusindicates that the button has been pressed, but before indicating thatthe button has been released, and (2) while a difference between theprevious sensed motion coordinates and the sensed coordinates receivedduring the first predetermined time interval does not exceed a firstpredetermined distance, the display motion coordinates are the previoussensed motion coordinates acquired prior to the button status indicatingthat the button has been pressed (3) if the status button has beenreleased during the first time interval, (4) during a secondpredetermined time interval after the evolution of the button statusindicates that the button was pressed and released, but beforeindicating that the button has been pressed again, and (5) while adifference between the previous sensed motion coordinates and the sensedmotion coordinates received during the second predetermined timeinterval does not exceed a second predetermined distance, and thedisplay motion coordinates are the previous sensed motion coordinates(6) if the button status indicates that the button has been pressedagain during the second predetermined time interval after beingreleased, (7) during a third predetermined time interval, after theevolution of the button status indicates that the button was pressedagain, but has not been released again, and (8) while a differencebetween the previous sensed motion coordinates and the sensed motioncoordinates received during the third predetermined time interval doesnot exceed a third predetermined distance.
 12. A method for processinginformation transmitted from a pointing device with at least one buttontowards a graphical interface operating according to received displaymotion coordinates and notifications, the method comprising:intercepting sensed motion coordinates and the button status transmittedfrom the pointing device; determining the display motion coordinates andthe notifications based on an evolution of the sensed coordinates and anevolution of the button status, to remove an unintentional motionincluded in the sensed motion coordinates; and outputting the displaymotion coordinates and the notifications towards the graphicalinterface, wherein the display motion coordinates are previous sensedmotion coordinates transmitted prior to the button status indicatingthat the button has been pressed (1) during a first predetermined timeinterval after the button status indicates that the button has beenpressed, but before indicating that the button has been released, and(2) while a difference between the previous sensed motion coordinatesand the sensed coordinates received during the first predetermined timeinterval does not exceed a first predetermined distance the displaymotion coordinates are the previous sensed motion coordinates acquiredprior to the button status indicating that the button has been pressed(3) if the status button has been released during the first timeinterval, (4) during a second predetermined time interval after theevolution of the button status indicates that the button was pressed andreleased, but before indicating that the button has been pressed again,and (5) while a difference between the previous sensed motioncoordinates and the sensed motion coordinates received during the secondpredetermined time interval does not exceed a second predetermineddistance, the display motion coordinates are the previous sensed motioncoordinates (6) if the button status indicates that the button has beenpressed again during the second predetermined time interval after beingreleased, (7) during a third predetermined time interval, after theevolution of the button status indicates that the button was pressedagain, but has not been released again, and (8) while a differencebetween the previous sensed motion coordinates and the sensed motioncoordinates received during the third predetermined time interval doesnot exceed a third predetermined distance.
 13. The method of claim 12,wherein the determining of the notification includes: (1) selecting afirst notification (nPending) when the received button status indicatesthat the button is pressed, but before determining whether a selectaction or a drag action follows, (2) selecting a second notification(nDragStart) when the received button status indicates that the buttonis pressed, and the display motion coordinates are different from thesensed motion coordinates, (3) selecting a third notification(nDragStop), when the evolution of the received button status indicatesthat the button has been released after a prior notification that is thesecond notification, and (4) selecting a fourth notification (nSelect),when the button is released and or pressed a second time after a priornotification is not the second notification.
 14. A non-transitorycomputer readable storing medium storing executable codes which whenexecuted by a computer located on a data transmission path between apointing device with at least one button and a graphical interfaceoperating according to received display motion coordinates and a buttonstatus make the computer execute a method comprising: interceptingsensed motion coordinates and the button status transmitted from thepointing device; and determining the display motion coordinates based onan evolution of the sensed coordinates, depending on an evolution of thebutton status, to remove an unintentional motion included in the sensedmotion coordinates; and outputting the display motion coordinates andthe button status towards the graphical interface, wherein thedetermining of the display motion coordinates is performed alsodepending on values of a drag enable flag and a select enable flag thathave “ON” as default values.